// 给你一个 n x n 的整数方阵 matrix 。你可以执行以下操作 任意次 ：
//     选择 matrix 中 相邻 两个元素，并将它们都 乘以 -1 。
// 如果两个元素有 公共边 ，那么它们就是 相邻 的。
// 你的目的是 最大化 方阵元素的和。请你在执行以上操作之后，返回方阵的 最大 和。

/////判断负数数量是奇数还是偶数
/**
 * @param {number[][]} matrix
 * @return {number}
 */
 var maxMatrixSum = function(matrix) {
    let min = Number.MAX_SAFE_INTEGER;
    let len = matrix.length;
    let result = 0;
    let flag = true;
    for(let i = 0; i < len; i++) {
        for(let j = 0; j < len; j++) {
            if (matrix[i][j] < 0) {
                flag = !flag;
                matrix[i][j] = -matrix[i][j];
            }
            result += matrix[i][j];
            min = Math.min(min, matrix[i][j]);
        }
    }
    if (!flag) { ///奇数个负数
        return result -= 2 * min;
    }
    return result;
};

console.log(maxMatrixSum( [[1,2,3],[-1,-2,-3],[1,2,3]]));



